#ifndef SCENEOBJECT_H
#define SCENEOBJECT_H

#include "vec2.h"
#include "isceneobjectvisitor.h"
#include "../external/iobject.h"

class SceneObject : public virtual IObject
{
public:
    virtual ~SceneObject();
    virtual void accept(ISceneObjectVisitor *visitor) = 0;

    float x() const;
    float y() const;

    float radius() const;
    void move(float x, float y);

protected:
    SceneObject();
    SceneObject(const vec2f &position);

    void setRadius(float value);

private:
    vec2f _position;
    float _radius;
};

#endif // SCENEOBJECT_H
